import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/Login.vue'
import ElementUI from '../components/ElementUI.vue'
import Home from '../components/Home.vue'
import User from '../components/user/user.vue'
import ItemCat from '../components/items/ItemCat.vue'
import Item from '../components/items/Item.vue'
import AddItem from '../components/items/addItem.vue'
//使用路由机制
Vue.use(VueRouter)
const routes = [
  {path: '/', redirect: '/login'},
  {path: '/login', component: Login},
  {path: '/elementUI', component: ElementUI},
  {path:'/home',component: Home,children:[
    {path:'/user',component:User},
    {path:'/item',component:Item},
    {path:'/itemCat',component:ItemCat},
    {path:"/item/addItem",component:AddItem}
    ]}
    

]

//

const router = new VueRouter({
  routes
})
/**路由导航守卫!!!!!!!
 * 参数1. to    路由跳转的网址
 * 参数2. from  路由从哪里来
 * 参数3. next  是一个函数，表示放行或重定向
 *              next()放行
 *              next("/lonig")重定向
 * 业务实现：
 *    注意事项：如果访问login登录页面，直接放行，否则用户无法登录，死循环
 *    核心逻辑：检查是否有token
 *    有token表示已经登录，放行请求
 *    没有token 表示用户没有登录，重定向到登录页面
 */
router.beforeEach((to,from,next)=>{
  if(to.path === "/login") return next()

  let token = window.sessionStorage.getItem("token")

  if(token){
    return next()
  }

  next("/login")
})

export default router
